package com.briup.bookstore.service;

import com.briup.bookstore.domain.dto.OrderCreateDTO;
import com.briup.bookstore.domain.vo.OrderDetailVO;
import com.briup.bookstore.domain.vo.OrderVO;
import jakarta.validation.Valid;

import java.util.List;

/**
 * 订单相关的服务接口
 */
public interface OrderService {

    /**
     * 根据条件查询当前登录用户的订单信息
     *
     * @param id     订单编号
     * @param status 订单状态
     * @return 订单VO列表
     */
    List<OrderVO> queryByConditional(String id, Integer status);

    /**
     * 根据订单编号查询订单详情信息
     *
     * @param orderId 订单编号
     * @return 订单详情VO实体
     */
    OrderDetailVO queryById(String orderId);

    /**
     * 添加订单
     *
     * @param orderCreateDTO 订单创建DTO实体
     */
    void addOrder(@Valid OrderCreateDTO orderCreateDTO);

    /**
     * 关闭订单
     *
     * @param orderId 订单编号
     */
    void closeOrder(String orderId);

    /**
     * 完成订单 -- 即确认订单收货
     *
     * @param orderId 订单编号
     */
    void completeOrder(String orderId);
}
